iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
0
Software Development

模組化設計系列 第 20

Day20 - lerna.js 其他實用指令

  • 分享至 

  • xImage
  •  

lerna bootstrap

安裝所有相依的模組,並且將相依的模組連接 (linking) 起來。

lerna bootstrap

lerna publish

發佈模組

lerna publish -y

lerna changed

跟上次 release 相比,有哪些 packages 更變了。

lerna changed

lerna diff

lerna diff [package?]

lerna run

運行 npm script,可以指定具體的 package

lerna run [script]

lerna ls

顯示 packages 下的各個 package 的 version

lerna ls

lerna clean

刪除所有 node_modules 目錄,包括子模組內的 node_modules 目錄。

lerna clean

練習範例

講這麼多,沒真的操作看看還是一場空,那就來動手練習一下吧。

Step1

mkdir lerna-sandbox-2019
cd lerna-sandbox-2019/
git init
touch .gitignore
lerna init -i
git add .
git commit -m 'step1'

上傳到遠端的 repo

git remote add origin https://github.com/alincode/lerna-sandbox-2019.git
git push -u origin master

Step2

lerna create @alincode/app-api-server -y
lerna create @alincode/app-socket-server -y
lerna create @alincode/app-core -y

lerna list
git add .
git commit -m 'step2'

Step3

編輯 packages/app-api-server/lib/app-api-server.js

'use strict'

function appApiServer() {
  const Koa = require('koa')
  const app = new Koa()

  app.use(async (ctx) => {
    ctx.body = 'Hello World'
  })

  app.listen(3000)
}

const server = appApiServer()

module.exports = server

安裝 koa 模組

lerna add koa --scope=@alincode/app-api-server
node packages/app-api-server/lib/app-api-server.js

開啟 http://localhost:3000/ 來測試看看

git add .
git commit -m 'step3'

Step4

lerna add @alincode/app-core --scope=@alincode/app-api-server

編輯 packages/app-api-server/lib/app-api-server.js,加入下面兩行,

const appCore = require("@alincode/app-core");
appCore();

執行

node packages/app-api-server/lib/app-api-server.js
git add .
git commit -m 'step4'

原始碼 https://github.com/alincode/lerna-sandbox-2019,可以對照的來看。


上一篇
Day19 - lerna.js 自動產生 changelog
下一篇
Day21 - lerna.js 與 yarn 整合
系列文
模組化設計30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言